package com.xy.work.template.base.utils;
import com.xy.work.template.base.domain.LoginUser;
import lombok.extern.slf4j.Slf4j;

/**
 * @author niuniu
 * @Date: 2021/5/15 09:03
 * @Description: JWT 授权登陆加密和解码相关操作
 */
@Slf4j
public class LoginJwtUtil {
    /**
     * token 过期时间，正常是7天，方便测试我们改为70
     */
    private static final long EXPIRE_DAY = 7;

    /**
     * 加密的秘钥
     */
    private static final String SECRET = "xy.work.good.luck";

    /**
     * 令牌前缀
     */
    private static final String TOKEN_PREFIX = "xy.work.prefix";

    /**
     * 项目名称
     */
    private static final String SUBJECT = "xy";


    /**
     * 根据用户信息，生成令牌
     * @param loginUser
     * @return
     */
    public static String getToken(LoginUser loginUser) {
        log.info("登陆授权对象: {}",loginUser);
        JwtUtil.init(EXPIRE_DAY,TOKEN_PREFIX,SUBJECT,SECRET);
        return JwtUtil.geneJsonWebToken(loginUser);
    }



    /**
     * 校验token的方法
     *
     * @param token
     * @return
     */
    public static LoginUser checkJwt(String token) {
        JwtUtil.init(EXPIRE_DAY,TOKEN_PREFIX,SUBJECT,SECRET);
        return JwtUtil.checkJwt(token);
    }
}
